package com.vhall.component.controller.pendant.facade;

import com.vhall.component.entity.page.vo.PageVO;
import com.vhall.component.entity.pendant.vo.*;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;

/**
 * WEB端接口
 *
 * @author guoxin.wang
 * @date 2021/10/29
 */
@FeignClient(value = "PendantFacade", path = "/v4/pendant")
public interface PendantFacade {

    /**
     * 发起端-获取推屏挂件列表
     *
     * @param reqVO 参数
     * @return 返回值
     */
    @PostMapping("/list-push-pendant")
    PageVO<PendantListPushPendantRspVO> getPushList(@Validated PendantListPushPendantReqVO reqVO);

    /**
     * 发起端-挂件推屏
     *
     * @param reqVO 参数
     * @return 返回值
     */
    @PostMapping("/push-screen")
    Boolean pushScreen(@Validated PendantPushScreenReqVO reqVO);

    /**
     * 发起端-取消挂件推屏
     *
     * @param reqVO 参数
     * @return 返回值
     */
    @PostMapping("/cancel_push-screen")
    Boolean cancelPushScreen(@Validated PendantPushScreenReqVO reqVO);

    /**
     * 观看端-点击挂件上报
     *
     * @param reqVO 参数
     * @return 返回值
     */
    @PostMapping("/click-report")
    Boolean clickReport(@Validated PendantClickReportReqVO reqVO);

    /**
     * 观看端-获取固定挂件
     *
     * @param reqVO 参数
     * @return 返回值
     */
    @GetMapping("/default-fixed")
    PendantDefaultFixedRspVO getDefaultFixed(@Validated PendantDefaultFixedReqVO reqVO);

}
